/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package co.uniminuto.park.dao;

import co.uniminuto.park.clases.Estacionamiento;
import co.uniminuto.park.clases.Geolocalizacion;

import co.uniminuto.park.variables.VariablesGlobales;
import com.google.code.morphia.Datastore;
import com.google.code.morphia.Morphia;
import com.google.code.morphia.query.Query;
import java.util.ArrayList;
import java.util.List;
import org.bson.types.ObjectId;

/**
 *
 * @author Esteban Rozo
 */
public class consultarrEstacionamientoDao extends ConexionMongo {

    private Morphia morphia;
    private Datastore ds;
    private ObjectId iden;

    public ObjectId getIden() {
        return iden;
    }

    public void setIden(ObjectId iden) {
        this.iden = iden;
    }
    
    

    public Morphia getMorphia() {
        return morphia;
    }

    public void setMorphia(Morphia morphia) {
        this.morphia = morphia;
    }

    public Datastore getDs() {
        return ds;
    }

    public void setDs(Datastore ds) {
        this.ds = ds;
    }

    public consultarrEstacionamientoDao() {
        super();
    }

    public List<Estacionamiento> getParqueaderos() {
        this.morphia = new Morphia();
        this.morphia.map(Estacionamiento.class);
        this.ds = this.morphia.createDatastore(super.conectar(), VariablesGlobales.nombreBD);

        Query<Estacionamiento> q = ds.createQuery(Estacionamiento.class);
        List<Estacionamiento> ListaParqueaderos = q.asList();
        return ListaParqueaderos;
    }
    
    //busca por el object id 
       public List<Estacionamiento> getParqueaderosOne(Geolocalizacion geo) {
        this.morphia = new Morphia();
        this.morphia.map(Estacionamiento.class);
        this.ds = this.morphia.createDatastore(super.conectar(), VariablesGlobales.nombreBD);
        //ObjectId id= new ObjectId();
        String g = "523b200b3ab5d8bb96e3024e";
       this.iden = new ObjectId(g);
        Query<Estacionamiento> q = ds.createQuery(Estacionamiento.class).field("_id").equal(this.iden);
        List<Estacionamiento> ListaParqueaderos = q.asList();
        return ListaParqueaderos;
    }
       
       
        //busca por el object id 
       public List<Estacionamiento> getParqueaderosGeo(Geolocalizacion geo) {
        this.morphia = new Morphia();
        this.morphia.map(Estacionamiento.class);
        this.ds = this.morphia.createDatastore(super.conectar(), VariablesGlobales.nombreBD);
        
      
      
        Query<Estacionamiento> q = ds.createQuery(Estacionamiento.class).field("ubicacion").equal(geo);
        List<Estacionamiento> ListaParqueaderos = q.asList();
        return ListaParqueaderos;
    }

    public static void main(String args[]) {
        consultarrEstacionamientoDao in = new consultarrEstacionamientoDao();
        List<Estacionamiento> list;
      Geolocalizacion geo = new Geolocalizacion();
      geo.setLatitud(4.601562222196959);
      geo.setLongitud(-74.1134449839592);
      List<Estacionamiento> ListaParqueaderos = new ArrayList<Estacionamiento>();
      ListaParqueaderos= in.getParqueaderosGeo(geo);
        System.err.println("");
      //4.601562222196959, "longitud" : -74.1134449839592
    }
}
